package xin.pdf;

import com.itextpdf.text.*;
import com.itextpdf.text.pdf.PdfWriter;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * <pre>
 * 锚点测试
 *
 * HTML中的超文本链接，当我们点击某些语句，你能够跳转到网上的其他页。在PDF中也可以实现这种功能
 * 在文档中添加一个外部链接（例如使用URL链接到WEB上的其他文档）
 * 可以简单地使用Anchor对象，它派生于Phrase对象，使用方法相同。
 * 只有两种额外方法定义两种额外变量：setName和 setReference
 *
 * 如果你想添加内部链接，你需要选择该链接不同的名称，就象你相位在HTML中利用名称作为锚点一样。
 * 为达到该目的，你需要添加一个“#”
 * </pre>
 *
 * @author 马老七
 * @version 1.0
 * @since 2019/3/28
 */
public class AnchorTest {
    public static void main(String[] args) throws IOException, DocumentException {
        Rectangle rectangle = new Rectangle(PageSize.A4);
        rectangle.setBackgroundColor(BaseColor.WHITE);
        Document document = new Document(rectangle);
        FileOutputStream fos = new FileOutputStream(new File("E:\\test\\pdf\\anchor.pdf"));
        PdfWriter writer = PdfWriter.getInstance(document,fos);
        writer.setPdfVersion(PdfWriter.PDF_VERSION_1_2);
        document.open();
        document.newPage();

        document.add(new Phrase("锚点测试 \r\n",PdfFont.TITLE_FONT));
        document.add(new Phrase("外部链接 \r\n",PdfFont.TH_FONT));
        Anchor anchor = new Anchor("马老七", PdfFont.UNDERLINE);
        anchor.setReference( "https://www.spuermali.xin");
        anchor.setName("马老七 \r\n");
        document.add(anchor);

//        document.add(new Phrase("内部链接 \r\n",PdfFont.TH_FONT));
//        Anchor inter = new Anchor("马老七 \r\n", PdfFont.UNDERLINE);
//        inter.setReference( "#7");
//        inter.setName("第三页");
//        document.add(inter);
//
//        document.newPage();
//        document.add(new Phrase("page2"));
//        document.newPage();
//        document.add(new Phrase("page3"));
//        document.newPage();
//        document.add(new Phrase("page4"));
        document.close();
        fos.close();
    }
}
